package cn.yeziji.forum.vo.answer;

import cn.yeziji.forum.utils.StrUtils;
import cn.yeziji.forum.utils.TimeUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 答案值对象
 *
 * @author gzkemays
 * @since 2022/11/13 4:47 PM
 */
@Data
@NoArgsConstructor
public class AnswerVO {
  /** 回答ID */
  Integer id;
  /** 回答用户名 */
  String nickname;
  /** 回复的用户名 */
  String atNickname;
  /** 回答用户的头像 */
  String avatar;
  /** 用户自我介绍 */
  String desc;
  /** 回答的内容 */
  String content;
  /** 点赞数量 */
  Integer goodNumber;
  /** 是否点赞 */
  Boolean toOpera;
  /** 子回复 */
  List<AnswerVO> child;
  /** 创建时间 */
  String createTime;
  /** 最后修改时间 */
  String updateTime;

  public AnswerVO(Map<String, Object> map) {
    this.id = (Integer) map.get("id");
    this.nickname = (String) map.get("nickname");
    this.avatar = (String) map.get("avatar");
    this.desc = (String) map.get("desc");
    this.content = (String) map.get("content");
    this.goodNumber = (Integer) map.get("goodNumber");
    this.toOpera = map.get("toOpera") != null && (Boolean) map.get("toOpera");
    this.createTime =
        StrUtils.dateToStr(TimeUtils.COMMON_SIMPLE_PATTERN, (Date) map.get("createTime"));
    this.updateTime =
        StrUtils.dateToStr(TimeUtils.COMMON_SIMPLE_PATTERN, (Date) map.get("updateTime"));
  }
}
